Zum Hauptinhalt springen

Einheit 12 — Referenzkarte

Was du nach dieser Einheit hast: Alle Werkzeuge, alle Syntaxregeln und alle Fallstricke aus diesem Kurs auf einer Seite — zum Nachschlagen im Alltag.

Die 27 Werkzeuge

Orientieren

WerkzeugZweck
project_listProjekte auflisten
workflow_listWorkflows auflisten (Filter: project_id, include_disabled)
workflow_showAgents, Optionen, Verbindungen eines Workflows
workflow_exportPortables JSON

Nachschlagen

WerkzeugZweck
towelscript_catalog75 Node-Typen (input 15, processing 50, output 10)
agent_docsOptionen und Dokumentation eines Agents
credential_listNamen hinterlegter Zugangsdaten
api_spec_list / api_spec_showGespeicherte OpenAPI-Spezifikationen
api_spec_post_agent_configPost-Agent-Konfiguration aus einem Endpunkt bauen

Prüfen

WerkzeugZweck
towelscript_checkSyntax + stats
towelscript_compileAgents mit allen Optionen, GUIDs, links
towelscript_graphNodes und Kanten
towelscript_symbolsModule, Flows, Nodes mit Zeilennummern
towelscript_formatderzeit ohne Wirkung

Bauen

WerkzeugZweck
workflow_deployNeuen Workflow anlegen
workflow_updateBestehenden Workflow abgleichen
agent_updateEinen Agent ändern
workflow_duplicateKopie anlegen
workflow_deleteLöschen — unwiderruflich

Ausführen

WerkzeugZweck
agent_test_runDry-Run für einen Agent
workflow_runKompletten Workflow echt ausführen
message_reemitBestehende Nachricht erneut senden

Debuggen

WerkzeugZweck
workflow_logsLogs des letzten Laufs über alle Agents
agent_logsLogs eines Agents (min_level: 3 für Details)
workflow_messagesPayloads des letzten Laufs
agent_messagesAusgaben eines Agents

TowelScript auf einen Blick

module academy                        // Pflicht, Bezeichner

flow mein_workflow { // Bezeichner, KEIN String
node eingang: form { // node <name>: <typ> { … }
secret: "s" // String
timeout: 120 // Zahl
aktiv: true // Boolean
// nur // als Kommentar
felder: '[{"a":"b"}]' // einfache Quotes fuer JSON
text: """mehrzeilig
geht so""" // '''…''' ergibt LEEREN String
payload: { // Doppelpunkt! Objekt
name: "{{ name }}",
"x-header": "…" // Bindestrich-Schluessel quoten
}
rules: [ // Array von Objekten
{ type: "regex", value: "@", path: "email" }
]
token: @secret(Mein_Token) // Zugangsdaten
}

node weiter: ai { model: "gus:tav" }

eingang -> weiter // -> oder =>
}

Die Fallstricke

FallstrickSymptomRichtig
payload { … } ohne Doppelpunktedges: [], Optionen flach, check sagt validpayload: { … }
payload = { … }Option verschwindet spurlospayload: { … }
Zwei { … }-Blöcke in einem NodeSyntaxfehler am zweitenDoppelpunkt-Form nutzen
'''…'''Leerer String"""…""" oder Backticks
Doppelte Quotes um JSON\\\" im AgentEinfache Quotes
Node in der Mitte eingefügtNachfolger bekommen neue IDsNeue Nodes ans Ende, Reihenfolge in der Kette
workflow_update ohne nameWorkflow heißt „Workflow"name und description mitgeben
agent_update ohne merge_optionsAlle anderen Optionen wegmerge_options: true
http ohne post_urlWird zu WebsiteAgenthttp.post schreiben
agent_test_run mit towelscript_type: "http.post"Unknown TowelScript node typeagent_type: "Agents::PostAgent"
Post Agent, payload als StringBody doppelt kodiertpayload als Objekt
Post Agent ohne no_mergeFremdfelder im Bodyno_merge: true
ai mit output_format: "json"Felder nicht unter generationFelder liegen oben, Eingang unter last_message
Testpayload erfundenDry-Run grün, Produktion rotPayload aus agent_messages kopieren

Was der Dry-Run wirklich tut

Agentagent_test_run
Post Agent, POST/PUTsendet nicht, protokolliert den Request
Post Agent, GETsendet
Shell Command Agentführt nicht aus
CSV Agent, Doc Converterschreiben die Datei
Generative AI Agentruft das Modell wirklich auf

Die vier Abläufe

Neu bauen

catalog / agent_docs → schreiben → check → graph → compile → deploy → run → messages

Ändern

export → schreiben (neue Nodes ans Ende) → check/graph/compile
→ GUIDs vergleichen → update (mit name + description) → show → reemit

Debuggen

workflow_messages (wo bricht es ab?) → agent_logs (warum?)
→ agent_update / workflow_update → message_reemit → agent_messages

Einzelnen Agent klären

workflow_show (ID + Payload-Form) → agent_messages (echte Payload)
→ agent_test_run → agent_update → wieder testen

Vorlage für deine CLAUDE.md

# 42°flow — Arbeitsregeln

## Vor jedem Deploy
- towelscript_check, _compile UND _graph aufrufen
- graph: edges muss nodes − 1 ergeben (bei linearer Kette)
- compile: verschachtelte Optionen prüfen, links darf nicht leer sein

## TowelScript
- Verschachtelte Optionen immer `option: { … }` mit Doppelpunkt
- Einfache Quotes für eingebettetes JSON, """…""" für Mehrzeiler
- Zugangsdaten nur über @secret(Name), nie im Klartext
- Neue Nodes ans Ende des Flow-Blocks, Reihenfolge nur in der Verbindungskette

## Deploy und Update
- workflow_deploy und workflow_update immer mit name, description, project_id
- agent_update immer mit merge_options: true
- Vor workflow_delete immer workflow_export

## Post Agent
- http.post statt http
- no_merge: true, wenn nur die payload-Felder gesendet werden sollen
- payload als Objekt, nie als JSON-String

## Testen
- Testpayloads aus agent_messages des Vorgängers übernehmen, nicht erfinden
- Nach jedem Deploy einmal workflow_show und sources/receivers prüfen

Kurs abgeschlossen

Du kannst jetzt:

  • Einschätzen, wann Designer und wann Text das richtige Werkzeug ist
  • Claude Code mit 42°flow verbinden und die Verbindung prüfen
  • Workflows vollständig in TowelScript schreiben
  • Die Prüfkette einsetzen und Fehler erkennen, die keine Fehlermeldung erzeugen
  • Einzelne Agents testen, bevor sie produktiv laufen
  • Deployen, ausführen, debuggen und Nachrichten erneut durchschicken
  • Bestehende Workflows ändern, ohne Agent-Identitäten zu verlieren
  • Die Sicherheitsgrenzen der Schnittstelle benennen

Der Grundsatz bleibt: Die Werkzeuge nehmen dir die Mechanik ab, nicht die Verantwortung. Ein Workflow, der über MCP entstanden ist, muss dieselben Kriterien erfüllen wie jeder andere — wartbar, sicher, testbar, austauschbar, nachvollziehbar (Kurs 5, Einheit 1). Das Werkzeug ändert sich, der Maßstab nicht.